#ifndef CURVEDATA_H
#define CURVEDATA_H

#include <signaldata.h>
#include <qpoint.h>
#include <qwt_series_data.h>

class SignalData;

/**
 * @brief The CurveData class       класс работы с qwt (читать данные, которые хранятся в PrivateData)
 */

class CurveData : public QwtSeriesData<QPointF>
{
public:
    explicit CurveData(int i);
    /**
     * @brief values                получить значения точек из PrivateData через SignalData
     * @return                      вернёт эту точку
     */
    SignalData &values();
    /**
     * @brief sample                получить точку по индексу
     * @param i                     индекс
     * @return
     */
    virtual QPointF sample(size_t i) const;
    /**
     * @brief size                  через прослойку SignalData получить количество точек записанных в PrivateData
     * @return
     */
    virtual size_t size() const;
    /**
     * @brief boundingRect          получить область видимости графика
     * @return
     */
    virtual QRectF boundingRect() const;
    /**
     * @brief getNameParam          получить название параметра по индексу
     * @param index                 индекс параметра
     * @return                      вернет название параметра
     */
    QString getNameParam(int index);
private:
    /**
     * @brief d_param               индекс порядкогого номера кривой на графике
     */
    int d_param;
};

#endif // CURVEDATA_H
